#!/usr/bin/php -q
<?php
class WordCount
{
	public $file_name; //参照先
	public $word_all=array();

	public function getword($file_name,$num){
		$this->file_name = $file_name; //参照先テキストファイル名
		if(is_file($this->file_name)){ 	//テキストファイル有無の確認
			$text = fopen($this->file_name,'r'); 	//ファイル内容読み込み
			for($line = 1; !feof($text); $line++){ 
				$str = fgets($text);
				if($str){
					$str = mb_strtolower($str); 	//小文字に変換
					$word=str_word_count($str, 1); 	//文字列毎に格納
					foreach($word as $word_key){
						if($this->word_all[$word_key]){ 		//抽出済みチェック
							 $this->word_all[$word_key] ++; 	//カウント+1
						}
						else{
							$this->word_all[$word_key]=1; 	//カウント１で追加
						}
					}
				}
			}
			fclose($text);
		}
		else{
			print "no file\n";
		exit;
		}
		arsort($this->word_all); 	//カウント数でソート
		$this->word_all=array_slice($this->word_all,0,$num);
	}
	public function word_print($word_all){
		if($word_all){
			for ($i=0; $i<count($word_all); $i++){ //$num位まで処理
				$key=key(array_slice($word_all,$i,$i+1)); 	//抽出
				print $key."(".$word_all[$key]. "), "; 		//出力
			}
			print "\n";
		}
		else{
			print "no word";
		}
	}
}

$obj = new WordCount();
$result = $obj->getword("01_rfc2616.txt",3);
$obj->word_print($obj->word_all);
?>

